草庐IT

Swift:将 UISlider 捕捉到最接近的值

全部标签

ruby - 类似 tap 的组合方法,但能够返回不同的值?

我正在经历一个尝试避免临时变量和过度使用条件的阶段,在这个阶段我可以使用更流畅的编码风格。我非常喜欢在想要获取需要返回的值的地方使用#tap,但在返回它之前对其进行一些处理。deffluid_methodsomething_complicated(a,b,c).tapdo|obj|obj.update(:x=>y)endendvs。程序:defnon_fluid_methodobj=something_complicated(a,b,c)obj.update(:x=>y)obj#显然上面的示例很简单,但这在ruby​​社区中仍然是一种非常常见的编码风格。有时我也会使用#inject通过

ruby-on-rails - 如何检查字符串中的值是否为 IP 地址

当我这样做的时候ip=request.env["REMOTE_ADDR"]我得到客户端的IP地址吧。但是如果我想验证变量中的值是否真的是IP怎么办?我该怎么做?请帮忙。提前致谢。对不起,如果这个问题重复出现,我没有努力找到它......编辑那么IPv6IP呢?? 最佳答案 Ruby在标准库中已经有了所需的正则表达式。结帐resolv.require"resolv""192.168.1.1"=~Resolv::IPv4::Regex?true:false#=>true"192.168.1.500"=~Resolv::IPv4::Reg

ruby-on-rails - 如何格式化 Rails 编辑字段中显示的值?

我想让编辑表单域尽可能方便用户使用。例如,对于数值,我希望该字段以逗号显示(如number_with_precision)。这在显示方面很容易,但是编辑呢?有什么好的方法吗?我正在使用RailsFormBuilder。经过调查,我发现它使用了InstanceTag,它通过使用_value_before_type_cast获取字段的值。这意味着覆盖不会被调用。 最佳答案 到目前为止我想出的最好的是这样的:number_with_precision(f.object.my_attribute)%>或者my_attribute可以返回格式

arrays - 更改 .each 循环中引用的数组元素的值?

如何实现以下操作:我想更改在.each循环中的管道字符之间引用的数组元素的值。这是我想做的,但目前没有工作的例子:x=%w(hellothereworld)x.each{|element|if(element=="hello"){element="hi"#change"hello"to"hi"}}putsx#output:[hithereworld]很难找到如此笼统的东西。 最佳答案 您可以使用collect!或map!就地修改数组来获得您想要的结果:x=%w(hellothereworld)x.collect!{|element|

ruby - 将数组的值加到哈希中

这是我的数组[{:amount=>10,:gl_acct_id=>1,:alt_amount=>20},{:amount=>20,:gl_acct_id=>2,:alt_amount=>30}]我要结果[{:amount=>30}]or{:amount=30}有什么想法吗? 最佳答案 Ruby版本>=2.4.0有一个Enumerable#sum方法。所以你可以这样做arr.sum{|h|h[:amount]} 关于ruby-将数组的值加到哈希中,我们在StackOverflow上找到一个

ruby - 将 float 四舍五入到 ruby​​ 中最接近的整数

如果我有一个49.967的float并且我执行.to_i它将把它削减到49这对于我使用磁盘空间分析.967超过900mb的空间不会在显示中考虑。是否有将数字四舍五入到最接近的整数的函数,或者我必须像这样自己定义它:classFloatdefto_nearest_i(self+0.5).to_iendend这样我就可以做:>>5.44.to_nearest_i=>5>>5.54.to_nearest_i=>6 最佳答案 试试Float.round。irb(main):001:0>5.44.round=>5irb(main):002:0

ruby - 如何在 Ruby 中将时间舍入到最接近的 15 分钟?

有没有一种简单的方法可以将时间四舍五入到最接近的15分钟?这就是我目前正在做的事情。有更简单的方法吗?t=Time.newrounded_t=Time.local(t.year,t.month,t.day,t.hour,t.min/15*15) 最佳答案 您说的是“向下舍入”,所以我不确定您实际上是在寻找回合数还是底数,但这是执行这两项操作的代码。如果将round_off和floor方法添加到Time类,我认为这样的内容读起来真的很好。额外的好处是您可以更轻松地按任何时间分区舍入。require'active_support/cor

ruby - 按 Ruby 中哈希的值降序排序

我的输入哈希:h={"a"=>20,"b"=>30,"c"=>10}升序排序:h.sort{|a,b|a[1]b[1]}#=>[["c",10],["a",20],["b",30]]但是,我需要[["b",30],["a",20],["c",10]]我们怎样才能让它以相反的方式工作,是什么?什么意思? 最佳答案 您可以同时让它更干净、更清晰、更快!像这样:h.sort_by{|k,v|v}.reverse我对使用随机值对1000元素散列进行排序的3000次迭代的计时进行了基准测试,并得到了这些时间:h.sort{|x,y|-(x[1

ruby-on-rails - 如何将单个列的值放入数组中

现在我正在做这样的事情来选择一列数据:points=Post.find_by_sql("selectpointfromposts")然后将它们传递给一个方法,我希望我的方法保持不可知,现在必须从我的方法中调用hash.point。如何快速将其转换为数组并将数据集传递给我的方法,或者有更好的方法吗? 最佳答案 在Rails3.2中有一个pluckmethod为此就像这样:Person.pluck(:id)#SELECTpeople.idFROMpeoplePerson.pluck(:role).uniq#uniquerolesfrom

ruby - 获取给定名称的实例变量的值

一般来说,我如何才能获得对名称在字符串中的对象的引用?更具体地说,我有一个参数名称列表(成员变量-动态构建,所以我不能直接引用它们)。每个参数都是一个对象,也有一个from_s方法。我想做类似下面的事情(这当然行不通......):define_method(:from_s)do|arg|@ordered_parameter_names.eachdo|param|instance_eval"field_ref=@#{param}"field_ref.from_s(param)endend 最佳答案 实现这一点的最惯用的方法是:som